It is now common to require a user to log in before being able to operate a computer. Such a log in is normally performed within the operating system environment. That is, the log in is performed after the computer has booted and the operating system is running. Therefore, it is the operating system, or a program running within the operating system environment, that controls the log in and authenticates the user.
Recently, it has been proposed to conduct security log ins before the computer is booted under the control of the basic input/output system (BIOS). By performing the log in during the pre-boot stage, unauthorized users can be barred from accessing not only the operating system but the computer's hardware, such as the hard drive. Although pre-boot log in is attractive, there are challenges associated with its implementation. For example, Unicode passwords that may be usable in the operating system environment may not be fully supported in the BIOS environment. Specifically, if the characters of the password cannot be directly entered by the user using a physical keyboard, the password cannot be entered by the user in the BIOS environment. In such a case, the computer will not boot and potentially could be rendered non-functional.